一次控制 6 个总线舵机对应的 API 为:
Arm_serial_servo_write6(S1, S2, S3, S4, S5, S6, time)
函数功能:同时控制机械臂的六个舵机要运动到的角度
参数解释:
S1:1 号舵机的角度值 0~180。
S2:2 号舵机的角度值 0~180。
S3:3 号舵机的角度值 0~180。
S4:4 号舵机的角度值 0~180。
S5:5 号舵机的角度值 0~270。
S6:6 号舵机的角度值 0~180。
time:控制舵机运行的时间,在有效范围内,舵机转动相同的角度,输入运行的时间越小,舵机运动越快。输入 0 则舵机以最快速度运行。
返回值:无。
代码路径:/home/jetson/Dofbot/3.ctrl_Arm/5.ctrl_all.ipynb
#!/usr/bin/env python3
#coding=utf-8
import time
from Arm_Lib import Arm_Device
# 创建机械臂对象
Arm = Arm_Device()
time.sleep(.1)
xxxxxxxxxx
# 同时控制六个舵机运动,逐渐变换角度。
def ctrl_all_servo(angle, s_time = 500):
Arm.Arm_serial_servo_write6(angle, 180-angle, angle, angle, angle, angle,
s_time)
time.sleep(s_time/1000)
def main():
dir_state = 1
angle = 90
# 让舵机复位归中
Arm.Arm_serial_servo_write6(90, 90, 90, 90, 90, 90, 500)
time.sleep(1)
while True:
if dir_state == 1:
angle += 1
if angle >= 180:
dir_state = 0
else:
angle -= 1
if angle <= 0:
dir_state = 1
ctrl_all_servo(angle, 10)
time.sleep(10/1000)
# print(angle)
try :
main()
except KeyboardInterrupt:
print(" Program closed! ")
pass
xxxxxxxxxx
del Arm # 释放掉 Arm 对象
从 jupyter lab 打开程序文件,并且点击 jupyter lab 工具栏上的运行整个notebook 按钮,即可看到机械臂六个舵机同时转动,机械臂不断变化自身的姿态。
如果要退出则点击工具栏的停止按钮。